<!DOCTYPE html>
<html lang="zh_CN">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<!--#include file="meta.htm"-->
<title>铜豌豆 Linux -- 使用技巧 -- 技术用户</title>
    <!-- 包含头部信息适应不同设备 -->
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 包含bootstrap 样式表-->
  <link rel="stylesheet" href="https://cdn.atzlinux.com/bootstrap-4.3.1-dist/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<!--#include file="header.htm"-->
<hr>
<table width="100%">
<tr>
<td><h2>技术用户 -- 使用技巧</h2></td>
<td align="right"><a class="nav-item nav-link" href="https://www.atzlinux.com/skills.htm">普通用户 -- 使用技巧</a></td>
</tr>
</table>
<h4>gpg 相关</h4>
<ul>
<li>铜豌豆的公钥 <a href="#gpg">#gpg</a></li>
<li>添加 ssh 登录密钥 <a href="#sshadd">#sshadd</a></li>
<li>使用 GPG ssh 公钥登录服务器 <a href="#gpgssh">#gpgssh</a></li>
<li>把某个密钥对从钥匙环里面删除 <a href="#delkey">#delkey</a></li>
<li>雷鸟邮件客户端 enigmail 匹配调整 <a href="#enigmail">#enigmail</a></li>
<li>以 8 个字符的方式，显示主钥及子钥的 key ID <a href="#keyidshort">#keyidshort</a></li>
<li>GnuPG 图形化前端软件包--海马<a href="#seahorse">#seahorse</a></li>
<li>查看当前用户下 gpg 代理运行情况 <a href="#gpgagent">#gpgagent</a></li>
</ul>
<p>
<a name="debconf24ksp" />
	<center>
	在参加完<a href="https://debconf24.debconf.org/about/ksp/" target="_blank"> Debian 第 24 界年会 gpg key 签名会</a> 后的 签名关系图
	</center>
	<br>
<img  class="img-fluid" src="https://cdn.atzlinux.com/pics/meeting/dc24/neato-sigs-20240815.png" alt="Debconf24 KSP gpg 签名关系图">
</p>
<h4>其它</h4>
<ul>
<li>小技巧汇集 <a href="#misc">#misc</a></li>
<li>在 vi 里面高亮显示行尾的空格和 tab 键 <a href="#vi-trailing-whitespace">#vi-trailing-whitespace</a></li>
<li>添加 iso 文件到本地 apt 软件包安装源 <a href="#apt-cdrom">#apt-cdrom</a></li>
<li>安装 6.x 系列 rt 内核 <a href="#kernel-6.x">#kernel-6.x</a></li>
<li>安装普通内核 <a href="#kernel-normal">#kernel-normal</a></li>
<li>安装 Debian 最新版本 内核 <a href="#kernel-sid">#kernel-sid</a></li>
<li>安装 NVIDIA 显卡厂家闭源驱动及相关软件 <a href="#nvidia">#nvidia</a></li>
<li>查看 GPU 使用情况 <a href="#gpu_top">#gpu_top</a></li>
<li>向 Linux 硬件网站上报机器硬件信息 <a href="#hw-probe">#hw-probe</a></li>
<li>使用 jigdo 下载制作铜豌豆 iso 镜像文件 <a href="#jigdo">#jigdo</a></li>
<li>免 U 盘安装铜豌豆系统 <a href="#hd-install">#hd-install</a></li>
<li>将铜豌豆系统安装到 U 盘，移动硬盘 <a href="#hd-live">#hd-live</a></li>
</ul>
<hr>
<h4>gpg 相关</h4>
<ul>
<a name="gpg" />
	<li>铜豌豆的公钥 #gpg</li>
《铜豌豆 Linux》使用业界通用的 GPG 公私钥签名技术来保证用户和铜豌豆服务器之间，数据传输端到端的安全通信。
铜豌豆公钥在 iso 操作系统安装和一键安装脚本安装的时候，已经自动导入 apt 公钥库。
一般情况下，不需要使用如下手工方式获取。
<br>
	公钥获取方式：
<ul>
	<li>铜豌豆 12 版本</li>
<ul>
<li>从铜豌豆服务器上下载</li>
	公钥文件下载地址:
<a href="https://www.atzlinux.com/atzlinux/download/public-v12.key">
https://www.atzlinux.com/atzlinux/download/public-v12.key
</a>
<ul>
	<li>查看 key 的详细信息：</li>
	<p>
	<kbd>gpg --show-key public-v12.key</kbd>
	</p>
	<li>导入到 apt 公钥库</li>
将该文件下载后，用 root 账号运行：
<br>
	<i>apt-key add public-v12.key</i>
	<li>导入到个人账号下的 gpg 公钥库</li>
	<i>gpg --import public-v12.key</i>
</ul>
<li>从业界通用的 gpg 公钥服务器上通过公钥 GPG id 搜索下载</li>
铜豌豆12 版本公钥 GPG id 为: <i>0xD9A5707E</i> 其电子邮件为：atzlinux apt release key (v12) &lt;xsw@atzlinux.com&gt;
<ul>
	<li>导入到 apt 公钥库</li>
apt-key adv --keyserver keyserver.ubuntu.com --receive-keys 0xD9A5707E
	<li>导入到个人账号下的 gpg 公钥库</li>
用下述命令搜索、导入该公钥到个人账号下的 gpg 公钥库：
<p>
<i>gpg --keyserver keyserver.ubuntu.com --search-keys 0xD9A5707E</i>
</p>
</ul>
</ul>
	<li>铜豌豆 11 版本</li>
<ul>
<li>从铜豌豆服务器上下载</li>
	公钥文件下载地址:
<a href="https://www.atzlinux.com/atzlinux/download/public-v11.key">
https://www.atzlinux.com/atzlinux/download/public-v11.key
</a>
<ul>
	<li>导入到 apt 公钥库</li>
将该文件下载后，用 root 账号运行：
<br>
	<i>apt-key add public-v11.key</i>
	<li>导入到个人账号下的 gpg 公钥库</li>
	<i>gpg --import public-v11.key</i>
</ul>
查看 key 的详细信息：
<p>
<kbd>gpg --show-key public-v11.key</kbd>
</p>
<li>从业界通用的 gpg 公钥服务器上通过公钥 GPG id 搜索下载</li>
铜豌豆目前使用的公钥 GPG id 为: <i>0x4EE54C28</i> 其电子邮件为：atzlinux apt release key (v11) &lt;xsw@atzlinux.com&gt;
<ul>
	<li>导入到 apt 公钥库</li>
apt-key adv --keyserver keyserver.ubuntu.com --receive-keys 0x4EE54C28
	<li>导入到个人账号下的 gpg 公钥库</li>
用下述命令搜索、导入该公钥到个人账号下的 gpg 公钥库：
<p>
<i>gpg --keyserver keyserver.ubuntu.com --search-keys 0x4EE54C28</i>
</p>
</ul>
</ul>
</ul>
后续就可以用该公钥来手工验证铜豌豆 iso 文件签名、apt 软件源签名、jigdo 文件等签名。
<p>注：
	<i>apt-key list</i> 命令可以查看当前 apt 公钥库里面所有公钥列表。
</p>
<a name="sshadd" />
	<li>添加 ssh 登录密钥  #sshadd</li>
	运行 ssh-add 命令，输入私钥密码。后续远程登录机器，就不用再次输入私钥密码，一直在本次登录有效。
<a name="gpgssh" />
	<li>使用 GPG ssh 公钥登录服务器 #gpgssh</li>
	GPG 密钥对，也可以用于 ssh 	登录远程服务器。实现此功能的相关步骤如下，供参考：
	<ol>
	<li>生成具备 SSH 认证功能的子钥</li>
	具体请查阅
<a href="https://blog.ddosolitary.org/posts/use-the-ssh-feature-of-gpg-agent/" target="_blank">
	相关文档</a>，
	关键点是用于 ssh 登录认证的子钥，需要有身份验证功能。
	这种类型的子钥，需要用 --expert 专家模式才能够生成。
	例如：
	<i>gpg --expert --edit-key atzlinux@yeah.net</i>
<pre>
gpg> addkey
请选择您要使用的密钥类型：
   (3) DSA（仅用于签名）
   (4) RSA（仅用于签名）
   (5) ElGamal（仅用于加密）
   (6) RSA（仅用于加密）
   (7) DSA（自定义用途）
   (8) RSA（自定义用途）
  (10) ECC（仅用于签名）
  (11) ECC（自定义用途）
  (12) ECC（仅用于加密）
  (13) 现存的密钥
  您的选择是？ 8

RSA 密钥的可实现的功能： 签名（Sign） 加密（Encrypt） 身份验证（Authenticate） 
目前启用的功能： 签名（Sign） 加密（Encrypt） 

   (S) 签名功能开关
   (E) 加密功能开关
   (A) 身份验证功能开关
   (Q) 已完成
</pre>
在这里选择 <b>A</b>
	<li>安装命令行 gpg 密码输入软件包</li>
	<i>apt -y install pinentry-tty pinentry-curses</i>
	<li>修改 ~/.bashrc </li>
	增加如下几行：
<pre>
export GPG_TTY=$(tty)
if [[ -n "$SSH_CONNECTION" ]] ;then
    export PINENTRY_USER_DATA="USE_CURSES=1"
fi
gpg-connect-agent updatestartuptty /bye >/dev/null

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
  export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
</pre>
<li>修改 ~/.gnupg/gpg.conf</li>
增加如下一行:<br>
<i>pinentry-mode loopback</i>
<li>修改 ~/.gnupg/gpg-agent.conf</li>
增加如下几行:
<pre>
enable-ssh-support
allow-loopback-pinentry
disable-scdaemon
</pre>
<li>修改 ~/.gnupg/sshcontrol</li>
将生成的具备认证功能 [A] 的“子钥 keygrip”加入该文件。
<p>
<i>gpg --list-keys --with-keygrip atzlinux@yeah.net</i>
<pre>
sub   rsa4096 2020-06-05 [A] [有效至：2021-06-05]
      Keygrip = D9160EA08492B604A0DFEB0922104A9B9CDFB47E
</pre>
</p>
<li>将 gpg 公钥导出,放入远程机器的 ~/.ssh/authorized_keys</li>
运行
<i>ssh-add -L</i> 或者
<i>gpg --export-ssh-key user-id</i>
命令，将会生成 ssh 远程登录公钥。
<p>
相关信息,请参阅:
<a href="https://wiki.archlinux.org/index.php/GnuPG#SSH_agent" target="_blank">
https://wiki.archlinux.org/index.php/GnuPG#SSH_agent</a>
</p>
<li>使用主钥方式</li>
使用 GPG 的主钥，也可以设置认证功能，用于 ssh 登录服务器。
<kbd>gpg --edit-key 主钥 keyid</kbd> 进入 gpg 交互式提示符后，使用 <kbd>change-usage</kbd>
修改添加 <samp>(A) 身份验证功能开关</samp>，
其余步骤和使用子钥一样。
<p>指定导出某个子钥或主钥的 ssh 公钥，可以在 keyid 后加感叹号实现，如：
<kbd><i>gpg --export-ssh-key 0xC7909957!</i></kbd>
</p>
<li>使用 GPG ssh 公钥的优点</li>
<ul>
	<li>提升私钥安全性</li>
<p>普通的 ssh 公钥登录，生成的私钥文件：
	直接存放在用户目录的 .ssh 目录下；
	私钥文件名默认是固定的 id_rsa、id_dsa 等；
	很多私钥文件没有设置密码；
	甚至为了方便，直接上传到了网络存储，
	这样导致 ssh 的私钥文件，相对容易被窃取。
</p>
<p>使用 GPG ssh 公钥，其私钥使用 gpg 的方式统一管理。
必须使用 gpg --export-secret-keys 或 --export-secret-subkeys 命令才能够将私钥导出，必须输入私钥密码。
极大的增加了私钥文件被窃取的难度。
	<li>简化开通服务器登录权限步骤</li>
如果一个 gpg key 配置了 ssh 认证功能，并将 key 上传到了 key server，那么其它人就可以通过 key id 搜索下载这个 key，并用 --export-ssh-key
命令将该 key 的 GPG ssh 公钥导出。
导出的 GPG ssh 公钥，可以直接放到服务器用户目录的 .ssh/authorized_keys
文件里面，这样就可以更加方便的让对方直接登录服务器，少了一次人工向对方索取 ssh
公钥的步骤，更加便捷。
	<li>统一管理</li>
	将登录服务器的 ssh 公钥和邮件签名、加密、deb 打包签名、git 提交签名等相关工作，统一用一个 gpg id 管理起来，
	可以提升工作效率。
</ul>
<br>
<p>注：其它相关影响</p>
设置 GPG ssh 公钥方式后，由于修改了密码输入方式为 loopback，会影响到部分程序使用 GPG 时的密码输入。
需要手工指定 pinentry-mode 为 ask。
</ol>
<a name="delkey" />
<li>把某个密钥对从钥匙环里面删除  #delkey</li>
<samp>gpg --pinentry-mode ask --delete-secret-keys 0x8F88E2B4</samp>
<a name="enigmail" />
<li>雷鸟邮件客户端 enigmail 匹配调整  #enigmail</li>
雷鸟邮件客户端常用的 GPG 加密插件 enigmail 会出现无法输入密码导致报错的现象。
请按如下方式解决：
<p>
在雷鸟里面依次进入 enigmail，选项，显示专家设置和菜单，高级，
附加到 Gnupg 的参数 里面填入： “<i>--pinentry-mode=ask</i>”
</p>
<p><strong>注：</strong>雷鸟从版本 1:78.4.0-1~deb10u1 开始，本身已经默认支持使用 GPG，不需要额外安装 enigmail 插件。
在雷鸟版本升级时，enigmail 插件能够把旧版本的 GPG 数据，导入新版本的雷鸟。
</p>
<a name="keyidshort" />
<li>以 8 个字符的方式，显示主钥及子钥的 key ID   #keyidshort</li>
<i>gpg --keyid-format 0xshort -k</i>
<p>
也可以把下面这行加入 gpg 配置文件 ~/.gnupg/gpg.conf：
<br>
keyid-format 0xshort
<br>
让 gpg 命令默认以短格式 8 字符方式显示 key ID。
</p>
<a name="gpgagent" />
<li>查看当前用户下 gpg 代理运行情况 #gpgagent</li>
<i>systemctl --user status gpg-agent</i>
<a name="seahorse" />
<li>
安装 GnuPG 图形化前端软件包--海马，可以图形化方式查看当前密码、密钥使用情况 #seahorse
</li>
<i>apt install seahorse</i>
<li>gpg 缩写介绍</li>
<pre><code>sec =&gt; 'SECret key'
ssb =&gt; 'Secret SuBkey'
pub =&gt; 'PUBlic key'
sub =&gt; 'public SUBkey'
</code></pre>
</ul>
<h4>其它</h4>
<ul>
<a name="misc">
<ul>
<li>查看某服务当天的日志</li>
<kbd>journalctl -S today -u bluetooth.service</kbd>
<li>命令行查看 CA 证书信息</li>
安装 certinfo 软件包，certinfo atzlinux-uefi-ca.crt
</ul>
<a name="vi-trailing-whitespace">
<li>在 vi 里面高亮显示行尾的空格和 tab 键 #vi-trailing-whitespace</li>
在 vi 配置文件里面，一般是用户目录下的 .vimrc，加上如下内容：
<p>
<pre>
highlight RedundantSpaces ctermbg=red guibg=red
match RedundantSpaces /\s\+$/
</pre>
</p>
<a name="apt-cdrom" />
	<li>添加 iso 文件到本地 apt 软件包安装源 #apt-cdrom</li>
	在系统安装后，使用 apt install 安装其它软件包时，经常需要联网下载一些依赖包,比较耗时。
	可以先一次性下载 Debian 官方的 iso 文件到本地，用 apt-cdrom add 命令，将 iso 文件里面的所有软件包，加入本地 apt 软件包安装源。
	<p>
以 Debian 10.9.0 第一张 DVD iso 文件为例：
	</p>
	<p>
假设下载的 iso 文件放在：/home/iso/debian-10.9.0-amd64-DVD-1.iso
	</p>
运行 apt-cdrom add 命令，会提示挂载光盘，打开另外一个终端窗口用 root 运行 mount 命令：
<br>
<p>
<i>mount -o loop /home/iso/debian-10.9.0-amd64-DVD-1.iso /media/cdrom/</i>
</p>
在添加完成后， /etc/apt/sources.list 文件会增加如下一行：
<p>
deb cdrom:[Debian GNU/Linux 10.9.0 _Buster_ - Official amd64 DVD Binary-1 yyyymmdd-HH:MM]/ buster contrib main
</p>
注：从 Debian 13 开始，需要手工在这行中加上 <b>[allow-insecure=yes]</b> 选项：
<p>
deb [allow-insecure=yes] cdrom:[Debian GNU/Linux 13.0.0 _Trixie_ - Official amd64 DVD Binary-1 with firmware 20250809-11:21]/ trixie contrib main non-free-firmware
</p>
<p>
以后安装软件的时候，如果需要的软件包，已经在这张光盘里面，系统就会提示你 mount 这个 iso 文件到 /media/cdrom。
</p>
如果不想每次手工 mount 这个 iso 文件，还可以在：
/etc/fstab
增加如下一行：
<br>
<p>/home/iso/debian-10.9.0-amd64-DVD-1.iso /media/cdrom iso9660 loop  	0 0</p>
让系统自动使用 mount 好的这个 iso 文件。
<a name="kernel-6.x" />
<li>安装 6.x 系列 rt 内核 #kernel-6.x</li>
Debian 11 版本已经将 6.x 内核移植过来，在铜豌豆 11 版本中，可以直接安装。
<ol>
root 在命令行执行：
	<li><i>apt update;apt upgrade</i></li>
	<li>确认当前最新的 6.x 内核软件包名称</li>
因 6.x 系列内核在不断升级中，可以使用
<pre>
<i>apt search linux-image-6 | more</i>
</pre>
搜索当前最新版本号，软件包名使用含有 rt-amd64 的即可。
	<li>安装内核</li>
以 linux-image-6.1.0-0.deb11.11-rt-amd64 为例：
<pre>

<i>apt install linux-image-6.1.0-0.deb11.11-rt-amd64</i>
</pre>
<li>重启机器</li>
安装完成后，会自动设置 grub 默认使用新内核启动系统，重启机器生效。
<li>查看内核版本</li>
<kbd>uname -a</kbd><br>
Linux atzlinux-ff 6.1.0-0.deb11.11-rt-amd64 #1 SMP PREEMPT_RT Debian <b>6.1.38-4~bpo11+1 (2023-08-08)</b> x86_64 GNU/Linux
</ol>
<a name="kernel-normal" />
<li>安装普通内核 #kernel-normal</li>
从 10.3.2 版本开始，为提升操作系统的响应速度，默认安装了 linux-image-rt-amd64 内核。
普通内核的安装命令如下：
<ul>
<li>铜豌豆 11 12 版本系列</li>
	<i>apt install linux-image-amd64</i>
</ul>
安装完成后，重启机器,在 grub 启动菜单里面选择 <b>高级选项 Advanced options</b>，再选择进入普通内核。
如果希望每次启动机器，默认进入普通内核，请修改 /boot/grub/grub.cfg 文件。
或者使用图形界面的软件修改，参见使用技巧：
<p>
<a href="https://www.atzlinux.com/skills.htm#grubcfg">
设置开机默认启动操作系统 #grubcfg</a>
</p>
<a name="kernel-sid" />
<li>安装 Debian 最新版本 内核 #kernel-sid</li>
Debian 最新版本内核位于：
<p>
<a href="https://packages.debian.org/sid/linux-image-amd64" target="_blank">
https://packages.debian.org/sid/linux-image-amd64</a>
</p>
请点击 “其他与 linux-image-amd64 有关的软件包”
下面的<br>
<font color="red"><b>* dep:</b></font>	linux-image-x.y.z-amd64 (= x.y.z-n)  链接，进入 具体内核版本 软件包页面下载安装。
<a name="nvidia" />
<li>安装 NVIDIA 显卡厂家闭源驱动及相关软件 #nvidia</li>
NVIDIA 显卡有多种型号，不同的型号，对应的厂家闭源驱动软件包、设置软件包不一样。
安装 NVIDIA 显卡厂家闭源驱动，操作步骤比较多，风险比较高，<b>强烈不建议</b>对 Linux 不熟悉的用户自行安装。
请用 root 执行下述操作。
<ol>
<li>安装 nvidia-detect 软件包，用于检测 NVIDIA GPU 型号</li>
<kbd>apt install nvidia-detect</kbd>
<li>在命令行运行 nvidia-detect 命令</li>
该命令会检测当前机器上的 NVIDIA 显卡型号，并给出对应的厂家驱动软件包名称。
	<li>请按该指引先安装 -- <a href="#kernel-normal">普通内核</a></li>
由于显卡厂家闭源驱动，不支持 rt 内核，需要重新安装不带 rt 功能的普通内核。
<br>
	<li>重启机器，用普通内核进入系统</li>
如果机器打开了安全启动，请在重启机器时，进入 BIOS 关闭安全启动。
	<li>卸载 rt 内核</li>
	由于 NVIDIA 厂家显卡闭源驱动不支持 rt 内核，并且 rt 内核会影响闭源驱动软件包的安装，导致安装过程报错，
	所以需要先卸载原有的 rt 内核、rt 内核头文件。
	<p><i>apt purge linux-image-rt-amd64 linux-headers-rt-amd64</i></p>
	<p><i>apt purge linux-image-6.1.0-22-rt-amd64 linux-headers-6.1.0-22-rt-amd64</i></p>
	<p><i>apt autoremove</i></p>
	注：请替换为当前使用的内核版本号。
	在上面普通内核的安装步骤中，有部分情况会自动卸载该 rt 内核，该步骤再次执行时，会有提示已经没有 rt 内核。
	<li>安装普通内核头文件</li>
<ul>
<li>铜豌豆 11 12 版本系列</li>
<i>apt install linux-headers-amd64</i>
</ul>
<li>根据显卡检测工具 nvidia-detect 的推荐，安装相应驱动软件包</li>
nvidia-driver,<br>
nvidia-legacy-390xx-driver，<br>
nvidia-tesla-418-driver,<br>
nvidia-tesla-450-driver,<br>
nvidia-tesla-470-driver,<br>
软件包名称中的版本号数字越小，对应的显卡型号发布越早。
同一个显卡，可以同时被上述软件包的一个或者几个支持，请选择其中一个安装即可,建议选择版本号数字较大者安装。
<ul>
<li>铜豌豆 11 12 版本系列</li>
<i>apt install 驱动软件包名称</i>
</ul>
	<li>安装 nvidia 厂家闭源驱动配置工具</li>
Nvidia 显卡厂家闭源驱动安装好后，还可以安装图形界面的显卡配置工具。
<p>
该工具可以对显卡进行各项设置，其默认软件包名为 nvidia-settings 。
但不同显卡驱动版本，对应的这个配置工具软件包名称，还可以带后缀，
形式为： nvidia-settings-name-version 。
如：nvidia-settings-legacy-390xx，nvidia-settings-tesla-470 等。
请根据驱动软件包名称，安装相应的配置工具软件包。
</p>
<ul>
<li>铜豌豆 11 12 版本系列</li>
<i>apt install nvidia-settings</i>
<br>
如果是老显卡，则为：
<i>apt install nvidia-settings-legacy-390xx</i>
</ul>
<li>重启机器</li>
机器重启后，在应用程序菜单中，“系统--NVIDIA X 服务器设置”，查看厂家闭源驱动及相关信息。
</ol>
参阅：
<a href="https://wiki.debian.org/NvidiaGraphicsDrivers/" target="_blank">
https://wiki.debian.org/NvidiaGraphicsDrivers/</a>

<a name="gpu_top" />
<a name="intel_gpu_top" />
<li>查看 Intel GPU 使用情况 #intel_gpu_top</li>
用 root 运行 <kbd>intel_gpu_top</kbd> 命令可以采用类似 top 的方式查看 Intel GPU 的使用情况
<li>查看 AMD GPU 使用情况</li>
radeontop
<li>查看 Nvida GPU 使用情况</li>
	<ul>
	<li>gpustat</li>
	<li>nvidia-smi</li>
需安装 Nvidia 厂家闭源驱动，并安装 nvidia-smi 软件包。
	</ul>
<a name="hw-probe" /a>
<li>向 Linux 硬件网站上报机器硬件信息 #hw-probe</a></li>
机器需要连上网络，用 root 账号在终端运行
<p>
<kbd>hw-probe -all -upload</kbd>
</p>
命令执行完成后，会在终端返回一个类似如下地址：
<p>
<a href="https://linux-hardware.org/?probe=89ef61c3ee" target="_blank">
https://linux-hardware.org/?probe=89ef61c3ee</a>
</p>
点击链接即可访问查看机器硬件驱动信息。
<p>
提示：该命令不会导致个人信息泄露，在上报时，已经去掉了机器各类 SN 号，MAC 地址等和硬件绑定的唯一标志。
</p>
<a name="jigdo" />
<li>使用 jigdo 下载制作铜豌豆 iso 镜像文件 #jigdo</li>
jigdo 是一个下载制作 iso 镜像文件的工具。
该工具可以使用原有镜像文件、网络镜像网站快速下载制作 iso 镜像文件。<br>
Debian 官方 jigdo 介绍：
<a href="https://www.debian.org/CD/jigdo-cd/"  target="_blank">
https://www.debian.org/CD/jigdo-cd/
</a>
<p>下面以制作铜豌豆 11.5.1 iso 镜像文件为例说明：
(请用新的铜豌豆 iso 版本号替代示例中的文件和路径名称)
<ol>
	<li>安装 jigdo 软件</li>
	root 账号下，在命令行执行：<i>apt -y install jigdo-file</i>
<li>挂载原有 iso 文件</li>
如有有已经下载的 Debian 11 最新版本 iso 镜像文件或者铜豌豆 iso 上一版本的镜像文件，请先挂载：
<pre>
<i>mount -o loop /home/iso/debian-11.5.0-amd64-DVD-1.iso /media/cdrom/</i>
</pre>
<p>后续步骤可以使用普通账号执行。</p>
	<li>下载 jigdo 相关文件</li>
相关文件目录为：
<a href="https://www.atzlinux.com/atzlinux-cd/11.5.1/amd64/jigdo-dvd/" target="_blank">
https://www.atzlinux.com/atzlinux-cd/11.5.1/amd64/jigdo-dvd/</a>
<p>请执行如下命令下载：<br>
<i>
wget -t 3 -w 3 https://www.atzlinux.com/atzlinux-cd/11.5.1/amd64/jigdo-dvd/atzlinux-11.5.1-amd64-DVD-1.jigdo
<br>
wget -t 3 -w 3 https://www.atzlinux.com/atzlinux-cd/11.5.1/amd64/jigdo-dvd/atzlinux-11.5.1-amd64-DVD-1.template
</i>
</p>
	<li>执行制作命令</li>
<i>jigdo-lite atzlinux-11.5.1-amd64-DVD-1.jigdo</i>
	<li>下载网址信息</li>
	jigdo 制作过程，会提示输入文件来源信息，需要用到来源如下：
<ul>
	<li>原有 iso 文件挂载的本地目录</li>
	如：/media/cdrom/，请优先输入。
	<li>Debian 网络镜像源</li>
	http://mirrors.cloud.tencent.com/debian/<br>
	http://mirrors.cloud.tencent.com/debian-security/<br>
	<li>铜豌豆 CDN 软件源</li>
	https://cdn.atzlinux.com/atzlinux/
	<li>Debian 快照镜像源</li>
	http://snapshot.debian.org/archive/debian/20210620T085058Z/<br>
	<p><em>注：</em>
	<a href="http://snapshot.debian.org/archive/debian/" target="_blank">
		http://snapshot.debian.org</a> 是 Debian 快照镜像源，请到该网站上选择铜豌豆 iso 发布前一天的地址填入。<br>
在大部分情况下，不需要使用该镜像源的软件包，就可以完成整个 iso 文件的制作。</p>
</ul>
</ol>
</p>
</p>
<a name="hd-install" />
<li>免 U 盘安装铜豌豆系统 #hd-install</li>
如果电脑已经有安装其它版本的 Linux，手上又没有 U 盘，也可以从硬盘直接安装铜豌豆系统。
<ol>
	<li>备份电脑数据</li>
	硬盘安装 Linux 系统，属于风险非常高的操作，请切记<strong>备份数据！</strong>
	<li>检查磁盘空间</li>
	建议给铜豌豆系统根分区预留 25G 以上磁盘空间。
	机器上原来用于存放数据的分区，可以在新安装的铜豌豆系统和原有 Linux 系统之间共享。
	<li>下载最新版铜豌豆 iso 安装文件到任一 Linux 分区下</li>
	该 Linux 分区最好是使用 Linux 默认的 ext4 文件系统。
	请直接把 iso 安装文件放到该分区顶级目录下，不要放入子目录。
	<li>下载安装内核和安装初始文件到 /boot 目录下</li>
	用 root 操作：
<ul>
<li>铜豌豆 11.x 版本</li>
	<pre>
	cd /boot
	wget https://mirrors.cloud.tencent.com/debian/dists/bullseye/main/installer-amd64/current/images/hd-media/vmlinuz
	wget https://mirrors.cloud.tencent.com/debian/dists/bullseye/main/installer-amd64/current/images/hd-media/initrd.gz
	</pre>
<li>铜豌豆 12.x 版本</li>
	<pre>
	cd /boot
	wget https://mirrors.cloud.tencent.com/debian/dists/bookworm/main/installer-amd64/current/images/hd-media/vmlinuz
	wget https://mirrors.cloud.tencent.com/debian/dists/bookworm/main/installer-amd64/current/images/hd-media/initrd.gz
	</pre>
</ul>
	<li>修改 grub 配置文件，增加铜豌豆安装条目菜单</li>
	 grub 配置文件路径一般为：/boot/grub/grub.cfg
	 将该文件第一个启动条目菜单整体复制，并粘贴到下面形成一个新铜豌豆安装条目，然后修改里面的 linux 行和 initrd 行。
	 示例如下：
	 <pre>
	linux	/vmlinuz debian-installer/locale=zh_CN console-keymaps-at/keymap=us keyboard-configuration/xkb-keymap=us keyboard-configuration/layout=us vga=788 quiet preseed/file=/cdrom/simple-cdd/default.preseed
	echo	'载入初始化内存盘...'
	initrd	/initrd.gz
   </pre>
	<li>重启机器，在 grub 启动界面选择铜豌豆安装条目</li>
	后续步骤跟铜豌豆正常安装一样。
	<li>在分区步骤，请不要对放置有 iso 文件的分区进行挂载操作</li>
	<span style="font-size: larger;"><strong><em>警告：</em></strong></span>如果不慎进行了这个操作，会导致安装失败。需要用 U 盘制作 iso 文件进行重装。
</ol>
<a name="hd-live" />
<li>将铜豌豆系统安装到 U 盘，移动硬盘 #hd-live</li>
<p>从 10.9.2 版本 iso 开始，支持此项功能。</p>
<em><strong><font color="#FF0000">警告：此功能尚处于测试阶段，极易出现机器无法启动等异常，新手慎重使用！</font></strong></em>
<ul>
<li>电脑有两个 USB 接口</li>
一个插铜豌豆安装盘，一个插目标 U 盘。
<li>电脑只有一个 USB 接口</li>
首先需要该电脑安装好一个 Linux 系统。
<p>
插入 U 盘后，先按 上述
<a href="#hd-install">免 U 盘安装铜豌豆系统</a>
的步骤进行
</p>
</ul>
在磁盘分区的步骤，请使用安装到整个磁盘的方式。
如插入的 U 盘设备名称是 sdb，就选择在整个 sdb 硬盘上安装。
后续步骤跟铜豌豆正常安装一样。
<p>
注：
<br>
在使用 EFI 启动的电脑上安装，安装完成后，机器原有硬盘上的系统引导条目，grub 菜单等不受影响；
<br>
但在 BIOS 方式启动的电脑上，在安装完成后，电脑原有的 grub 引导会被改写，移动 U 盘拔掉后，原有电脑启动时，会报 grub 分区错误，无法启动。
<strong>BIOS grub 异常处理步骤：</strong>
	<ul>
	<li>插入原有 U 盘，重启机器进入原有系统</li>
	用 root 运行 dpkg-reconfigure grub-pc 命令，在 sda 上重新安装 grub。
	<li>插入原有 U 盘，重启机器进入 U 盘系统</li>
	用 root 运行 dpkg-reconfigure grub-pc 命令，在 sdb 上重新安装 grub。
	</ul>
</p>
</ul>
<hr>
<!--#include file="footer.htm"-->
</div>
</body>
</html>
